A computer network (also referred to simply as a “network”) is a telecommunications network that allows nodes to share resources. More specifically, a computer network is a collection of nodes that are interconnected by communication channels, which allow data and resources to be shared. Examples of nodes include modems, hubs, bridges, switches, routers, servers, computers, mobile phones, etc. The communication channels between the nodes can be established using either wired media or wireless media.
Home networks (e.g., residential Local Area Networks) are typically used to facilitate communication between computing devices installed or used in a home, such as printers, tablet computers, and mobile phones. Enterprise networks, meanwhile, normally enable employees to access vital programs and data that are necessary for the day-to-day operations of an enterprise (e.g., a company). Enterprise networks held connect computing devices across different departments and geographical locations (and, in some instances, workgroup sub-networks), thereby facilitating data accessibility.
Computer networks (regardless of type) could be analyzed for a variety of reasons. For example, an administrator may be interested in measuring bandwidth or throughput, determining network robustness, tracking network uptime, detecting security threats, etc. Such analysis is typically more useful when the topology of the computer network is known. However, it is often difficult to gain an accurate understanding of the network topology, particularly for those computer networks (e.g., enterprise networks) whose make-up changes over time.
The figures depict various embodiments for the purpose of illustration only. One skilled in the art will readily recognize that alternative embodiments of the technology described herein may be employed without departing from the principles of the present invention.